home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 21 Sound & Utilities / WAVE.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.5 KB  |  86 lines

  1. 10 POKE55,.:POKE56,23:CLR:Z$=CHR$(.):C=55038:M$=CHR$(13):W=54272:Q$=CHR$(34)
  2. 12 Z=4781:POKEW+6,240:POKEW+13,240:POKEW+4,1:POKEW+11,1:PRINT"[147][142]":GOTO900
  3. 15 L=.:B$="":C$="":D$=""
  4. 25 FORI=1TO4:GET#8,A$:B$=B$+A$:NEXT
  5. 30 FORI=1TO4:GET#8,A$:NEXT
  6. 35 FORI=1TO8:GET#8,A$:C$=C$+A$:NEXT
  7. 40 IFB$="RIFF"ANDC$="WAVEfmt "THEN50
  8. 45 PRINT"[147]NOT A WAVE FILE":CLOSE8:GOTO900
  9. 50 FORI=1TO6:GET#8,A$:NEXT
  10. 55 GET#8,A$:A=ASC(A$+Z$)
  11. 60 FORI=1TO9:GET#8,A$:NEXT
  12. 65 GET#8,A$:R=ASC(A$+Z$):IFR<3THEN70
  13. 67 PRINT"[147]NOT SUPPORTED BY THIS PROGRAM":CLOSE8:GOTO900
  14. 70 GET#8,A$:GET#8,A$:B=ASC(A$+Z$):GET#8,A$
  15. 75 FORI=1TO4:GET#8,A$:D$=D$+A$:NEXT
  16. 80 IFD$<>"data"THEN45
  17. 85 FORI=.TO3:GET#8,A$:L=L+2^(8*I)*ASC(A$+Z$):NEXT
  18. 90 P=R
  19. 100 F=11000*R:T=L/F*8/B/A
  20. 105 S=L*4/B/A*P:P=P+128*(A-1)+8*B-64
  21. 110 IFA=1THENA$="MONAURAL"
  22. 115 IFA=2THENA$="STEREO"
  23. 120 POKE150,P:PRINT"[147]";A$
  24. 125 PRINT"SAMPLING RATE =";F;"HZ"
  25. 130 PRINT"NUMBER OF BITS =";B
  26. 135 PRINT"DURATION OF SOUND =";INT(T*100+.5)/100;"SECONDS"
  27. 140 PRINT"PRESS RETURN TO PLAY AT";F;"HZ RATE."
  28. 141 IFR=2THENPRINT"PRESS H TO PLAY AT HALF THE RATE.":P=P-1:GOTO143
  29. 142 PRINT"PRESS T TO PLAY AT TWICE THE RATE.":P=P+1
  30. 143 GETA$:IFA$=M$THEN147
  31. 144 IFA$="H"THENPOKE150,P:S=S/2:GOTO147
  32. 145 IFA$="T"THENPOKE150,P:S=S*2:GOTO147
  33. 146 GOTO143
  34. 147 IFS>CTHEN170
  35. 148 PRINT"PRESS RETURN TO LOAD AND PLAY FILE."
  36. 150 PRINT"PRESS F FOR ANOTHER FILE."
  37. 155 GETA$:IFA$="F"THEN167
  38. 160 IFA$=M$THEN185
  39. 165 GOTO155
  40. 167 PRINT"[147]":CLOSE8:GOTO938
  41. 170 PRINT"FILE IS TOO LARGE TO PLAY AT ONE TIME."
  42. 175 PRINT"PRESS RETURN TO LOAD AND PLAY FIRST OF"
  43. 180 PRINT"[157]";INT((S-1)/C)+1;"PARTS.":GOTO150
  44. 185 S=S-C:IFS>.THENP=9216:GOTO187
  45. 186 P=9216-S
  46. 187 POKE156,P/256:POKE143,P-256*INT(P/256)
  47. 188 PRINT"LOADING...":SYSZ+276
  48. 190 PRINT"[147]PRESS RETURN FOR SOUND."
  49. 195 IFS=<.THEN205
  50. 200 PRINT"PRESS N FOR NEXT PART."
  51. 205 PRINT"PRESS F FOR ANOTHER FILE."
  52. 210 GETA$:IFA$="F"THEN167
  53. 215 IFA$="N"THEN185
  54. 220 IFA$=M$THEN230
  55. 225 GOTO210
  56. 230 POKE156,P/256:POKE143,P-256*INT(P/256):SYSZ+145:GOTO190
  57. 700 OPEN15,D,15:INPUT#15,A,B$,H,E
  58. 705 IFA>19THENPRINT:PRINTA:PRINT:PRINTB$:PRINT:PRINTH,E:PRINT
  59. 710 CLOSE15:RETURN
  60. 900 PRINT"WITH DISK CONTAINING ";Q$;"WAVE";Q$;" FILES IN"
  61. 902 PRINT"DISK DRIVE, ENTER ITS DEVICE NUMBER."
  62. 905 PRINT"(ENTER 0 TO EXIT.)"
  63. 910 PRINT:PRINT"  8[145]":INPUTD:IFD=0THEN999
  64. 915 IFD<4ORD>30THENPRINT"[147]ILLEGAL DEVICE NUMBER":GOTO900
  65. 920 POKE2,36:POKE184,8:POKE185,0:POKE186,D
  66. 925 POKE183,1:POKE187,2:POKE188,.:SYS65472
  67. 930 CLOSE8:IFPEEK(783)AND1THENPRINT"[147]?DEVICE";D;"[157] NOT PRESENT":GOTO900
  68. 932 GOSUB700:IFA>19THEN900
  69. 935 PRINT"[147]LOADING DIRECTORY...":OPEN8,D,.,"$":SYSZ:CLOSE8
  70. 937 IFPEEK(2)=.THENPRINT"[147]NO FILES ON DISK":GOTO900
  71. 938 PRINT"";:SYSZ+435
  72. 940 PRINT"THIS PROGRAM WILL PLAY SOUND FILES THAT"
  73. 945 PRINT"USE THE WINDOWS ";Q$;"WAVE";Q$;" FORMAT.  ONLY 11"
  74. 950 PRINT"KHZ AND 22 KHZ SAMPLING RATES ARE"
  75. 955 PRINT"SUPPORTED BY THIS PROGRAM.  IF A FILE IS";
  76. 960 PRINT"TOO LARGE TO PLAY AT ONE TIME, PART OF"
  77. 965 PRINT"IT WILL BE PLAYED.  YOU WILL THEN HAVE"
  78. 970 PRINT"THE OPTION OF PLAYING SUCCESSIVE PARTS."
  79. 975 PRINT"CURSOR LEFT/RIGHT SCROLLS DIRECTORY."
  80. 980 PRINT"PRESS RETURN TO SELECT FILE."
  81. 985 PRINT"PRESS S TO START OVER."
  82. 990 PRINT"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]":POKE1983,100
  83. 995 SYSZ+601:IFPEEK(2)THENPRINT"[147]":GOTO900
  84. 998 GOTO15
  85. 999 POKE56,160
  86.